﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MoreEPG.Model;
using System.Windows.Threading;

namespace MoreEPG.Data
{
    public interface IData
    {
        
        // Members
        /// <summary>
        /// Get or Set DB Path
        /// </summary>
        string DBPath { get; set; }

        ResultCollections Results { get; }

        GuideImageCollection Images { get; set; }
        KeywordCollection KeyWords { get; set; }
        PersonCollection Persons { get; set; }
        TVChannelCollection TVChannels { get; set; }
        TVProgrammeCollection TVprograms { get; set; }
        
        Dispatcher UiDispatcher { get; set; }
        Delegate ProgressDelegate { get; set; }

        MCChannelInfoCollection MCChannelInfos { get; set; }
        MCImageInfoCollection MCImages { get; set; }
        MCPersonInfoCollection MCPersons { get; set; }
        MCProgramInfoCollection MCPrograms { get; set; }

        // Methods

        /// <summary>
        /// Update Source of TV Infos
        /// </summary>
        /// <returns></returns>
        bool UpdateSource();

        /// <summary>
        /// Fill the Source Dataset
        /// </summary>
        /// <returns></returns>
        bool FillDataSet();

        /// <summary>
        /// Fill the Collections (TVChannels, Keywords, TVProgramms....)
        /// </summary>
        /// <returns></returns>
        bool FillCollections();

        /// <summary>
        /// Get the TVChannel Collection only (for Config)
        /// </summary>
        /// <returns></returns>
        TVChannelCollection GetTVChannelCollectionOnly();


        

    }
}
